package com.itheima.controller;

import com.itheima.pojo.Result;
import com.itheima.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Slf4j
@RestController
public class UploadController {

    @Autowired
    private AliOSSUtils aliOSSUtils;

    //本地存储
//    @PostMapping("/upload")
//    public Result upload(String username, Integer age, MultipartFile image) throws Exception {
//        log.info("文件上传:{},{},{}",username,age,image);
//        //获取原始文件名
//        String originalFilename = image.getOriginalFilename();
//
//        //构造唯一的文件夹（不能重复）-uuid（通过唯一识别码）d9f9ea3e-309f-42ff-aa45-6c2b9e245e58
//        int index = originalFilename.lastIndexOf(".");  //lastIndexOf 方法是 String 类的一个成员方法，它用于查找指定字符或子字符串在调用该方法的字符串中最后一次出现的位置（索引）。索引值从0开始计数
//        System.out.println(index);
//        String extname = originalFilename.substring(index); //substring 方法是 String 类的一个成员方法，它用于从指定的索引位置开始提取子字符串，直到字符串的末尾（如果未指定结束索引）
//        String newFileName = UUID.randomUUID().toString() + extname;
//        log.info("新的文件名: {}",newFileName);
//
//        //将文件储存在服务器的磁盘目录中 E:\image_demo
//        image.transferTo(new File("E:\\image_demo\\"+newFileName));
//
//        return Result.success();
//    }

    @PostMapping("/upload")
    public Result upload(MultipartFile image) throws IOException {

        log.info("文件上传，文件名:{}",image.getOriginalFilename());

        //调用阿里云oss工具类进行文件上传
        String url = aliOSSUtils.upload(image);
        log.info("文件上传完成，文件访问的url：{}",url);


        return Result.success(url);
    }

}
